package com.xingdata.jjxc.utils;

import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.annotation.SuppressLint;

public class Fmt {
	// 格式化小数点
	public static String FormatsPoint(double f, int flag) {
		String fmtstr = null;
		String str = null;

		switch (flag) {
		case 0:
			fmtstr = "#####0";
			break;
		case 1:
			fmtstr = "#####0.0";
			break;
		case 2:
			fmtstr = "#####0.00";
			break;
		case 3:
			fmtstr = "###,###,##0.00";
			break;
		default:
			fmtstr = "#####0.00";
			break;
		}

		DecimalFormat df = new DecimalFormat(fmtstr);
		str = df.format(f);
		return str;
	}

	// 格式化小数点 钱
	public static String fmtToPoint(String fmtVal, int flag) {
		String fmtstr = null;
		String str = null;
		if (fmtVal == null) {
			fmtVal = "0";
		}
		switch (flag) {
		case 0:
			fmtstr = "#####0";
			break;
		case 1:
			fmtstr = "#####0.0";
			break;
		case 2:
			fmtstr = "#####0.00";
			break;
		case 3:
			fmtstr = "###,###,##0.00";
			break;
		case 5:
			fmtstr = "########0.00";
			break;
		default:
			fmtstr = "#####0.00";
			break;
		}

		DecimalFormat df = new DecimalFormat(fmtstr);
		str = "￥" + df.format(Double.parseDouble(fmtVal));
		return str;
	}

	/**
	 * 去掉年月汉字 如：2013年01月 转换之后为 201301
	 * 
	 * @param ym
	 * @return
	 */
	public static String removeYM(String ym) {
		return ym.substring(0, 4) + ym.substring(5, 7);
	}

	/**
	 * 加上年月汉字 如： 201301 转换之后为 2013年01月
	 */
	public static String appendYM(String ym) {
		return ym.substring(0, 4) + "年" + ym.substring(5, 7) + "月";
	}

	/**
	 * 加上年月汉字 如： 201301 转换之后为 2013年01月
	 */
	@SuppressLint("SimpleDateFormat")
	public static String appendMD(String ymd) {
		String md = "";
		try {

			SimpleDateFormat sdfOld = new SimpleDateFormat("yyyy-MM-dd");
			SimpleDateFormat sdfNew = new SimpleDateFormat("MM-dd");
			Date date = null;

			date = sdfOld.parse(ymd);
			md = sdfNew.format(date);
		} catch (ParseException e) {
			e.printStackTrace();
			return "-";
		}
		return md;
	}

	/**
	 * 年月转换 如： 20130101转换之后为 2013/01/01
	 */
	@SuppressLint("SimpleDateFormat")
	public static String appendYMD(String ymd) {
		String md = "";
		try {

			SimpleDateFormat sdfOld = new SimpleDateFormat("yyyyMMdd");
			SimpleDateFormat sdfNew = new SimpleDateFormat("yyyy/MM/dd");
			Date date = null;

			date = sdfOld.parse(ymd);
			md = sdfNew.format(date);
		} catch (ParseException e) {
			e.printStackTrace();
			return "-";
		}
		return md;
	}

	/**
	 * 年月转换 如： 201301010000转换之后为 2013.01.01
	 */
	@SuppressLint("SimpleDateFormat")
	public static String appendYMDHM(String ymd) {
		String md = "";
		try {

			SimpleDateFormat sdfOld = new SimpleDateFormat("yyyymmddhhmmss");
			SimpleDateFormat sdfNew = new SimpleDateFormat("yyyy.MM.dd");
			Date date = null;

			date = sdfOld.parse(ymd);
			md = sdfNew.format(date);
		} catch (ParseException e) {
			e.printStackTrace();
			return "-";
		}
		return md;
	}

	/**
	 * 年月转换 如： 2013.01.01转换之后为 20130101
	 */
	@SuppressLint("SimpleDateFormat")
	public static String appendToYMD(String ymd) {
		String md = "";
		try {

			SimpleDateFormat sdfOld = new SimpleDateFormat("yyyy.MM.dd");
			SimpleDateFormat sdfNew = new SimpleDateFormat("yyyyMMdd");
			Date date = null;

			date = sdfOld.parse(ymd);
			md = sdfNew.format(date);
		} catch (ParseException e) {
			e.printStackTrace();
			return "-";
		}
		return md;
	}

	/**
	 * 判断给定字符串是否空白串。 空白串是指由空格、制表符、回车符、换行符组成的字符串 若输入字符串为null或空字符串，返回true
	 * 
	 * @param input
	 * @return boolean
	 */
	public static boolean isEmpty(String input) {
		if (input == null || "".equals(input))
			return true;

		for (int i = 0; i < input.length(); i++) {
			char c = input.charAt(i);
			if (c != ' ' && c != '\t' && c != '\r' && c != '\n') {
				return false;
			}
		}
		return true;
	}

	/**
	 * 获取文件扩展名
	 * 
	 * @param fileName
	 * @return
	 */
	public static String getFileFormat(String fileName) {
		if (isEmpty(fileName))
			return "";

		int point = fileName.lastIndexOf('.');
		return fileName.substring(point + 1);
	}
}
